package org.aileen.springbook.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Data//分页查询的结果集
public class PageResult<T> {//   PageResult类用于封装分页查询的结果
    //    1.分页查询的结果是一个对象,包含了分页查询的结果集和总记录数
    //    2.分页查询的结果集是一个List集合,包含了查询到的数据
    //    3.总记录数是一个int类型的变量,表示查询到的数据的总条数
    //    图书信息列表 -> 此处为了实现分页的复用,因为在生活中我们除了图书信息可以进行分页以外还有对用户信息进行分页,使用泛型可以实现分页复用
    //    泛型T可以是BookInfo,也可以是UserInfo类型的数据
    private List<T> items;
    //    总记录数
    private int count;

    private RequestPage requestPage; // 分页请求参数,通过在后端中创建前端对象来获取前端当前页的页数

    private Integer status; // 状态码,用于判断用户是否登录的状态  200-后端处理成功  -1 - 后端处理失败  -2 - 用户未登录
    private String errMsg; // 状态码对应的信息说明


    // 添加一个三参数的构造方法
    public PageResult(List<T> items, int count, RequestPage requestPage) {
        this.items = items;
        this.count = count;
        this.requestPage = requestPage;
    }
}
